/**
 * Created by  jiazurongyu on 2017/11/21/021.
 */

var fs = require("fs");

function WriteFiles() {
    fs.writeFile('./test.txt', "第一行。\r\n 第二行. \r\n 第三行", 'utf8', function (err) {
        if (err) console.log("写入失败");
        else console.log("写入成功");
    })
}
//WriteFiles();

function WriteTxt() {
    //writeFile不能直接写入flag，所以需要转换1次
    var encoding = {
        'flag': 'a'
    };

    fs.writeFile('./test.txt', '\r\n 第四行', encoding, function (err) {
        if (err) console.log("写入失败");
        else console.log("写入成功");
    })
}
//WriteTxt();

function WriteEnd() {

    fs.appendFile('./test.txt', '\r\n 第五行', 'utf8', function (err) {
        if (err) console.log("写入失败");
        else console.log("写入成功");
    })
}
//WriteEnd();


//复制一份文件
function WriteCopy() {
    fs.readFile("./test.txt", "utf8", function (err, data) {
        fs.writeFile("./test1.txt", data, "utf8", function (err) {  //写是没有回调
            if (err) console.log("读取失败");
            else console.log(data);
        });
    })
}
//WriteCopy();

function OpenFiles() {
    fs.open('./test.txt', 'r', function (err, fd) {
        if (err) console.log("找不到文件");
        else console.log("打开文件", fd);
    })
}
//OpenFiles();

function Write() {
    fs.writeFile('./message.txt', "我爱编程", function (err) {
        if (err) console.log("写入失败");
        else console.log("写入成功");
    })
}
//Write();

function ReadTxt() {
    fs.open('./message.txt', 'r', function (err, fd) {
        const buffer = new Buffer(128);
        //对于把文件数据写入缓存里
        fs.read(fd, buffer, 0, 9, 3, function (err, bytesRead, buffer) {  //0-9为读取的字节数的区间，3是从读取message.txt的位置，一个中文3个字节
            console.log(buffer.slice(3, bytesRead).toString()); //输入结果是缓存里的第三个字节开始，就是编程
        })
    })
}
//ReadTxt();

function mkdir() {
    fs.mkdir('../buffer', function () {
        console.log("ok");
    });
}
//mkdir();

function ReadDir() {
    //./读取当前目录
    fs.readdir('../buffer', function (err, cb) {
        console.log(cb);
    })
}
//ReadDir();

function fsStats() {
    fs.exists('./test.txt', function (path) {
        console.log(path);
    })
    fs.exists('./test1.txt', function (path) {
        console.log(path);
    })
    fs.exists('./test2.txt', function (path) {
        console.log(path);
    })
}//fsStats();

//移动文件，最后要写入覆盖地址
function RenameFile() {
    fs.rename('./test.txt', '../buffer/test.txt', function (err) {
        if (err) throw err;
        console.log("rename成功")
    })
}
//RenameFile();

function RenameFile() {
    fs.rename(__dirname+'/message.txt', '../buffer/message.txt', function (err) {
        if (err) throw err;
        console.log("rename成功")
    })
}
RenameFile();